package cn.felord.common.http;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.Instant;

/**
 * 所有实体超类，包含审计字段
 *
 * @param <T> the type parameter
 * @author n1
 * @since 2021 /3/29 15:43
 */
@EqualsAndHashCode(callSuper = true)
@Data
public abstract class BaseEntity<T extends Model<?>> extends Model<T> {
    /**
     * 新增人
     */
    @TableField(fill = FieldFill.INSERT)
    private String creator;
    /**
     * 新增时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Instant createTime;
    /**
     * 更新人
     */
    @TableField(fill = FieldFill.UPDATE)
    private String updater;
    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.UPDATE)
    private Instant updateTime;
    /**
     * 逻辑删除
     */
    @TableLogic(value = "1",delval = "0")
    private Boolean enabled;

}
